package com.dragon.modules.yuegou.query.park;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dragon.modules.yuegou.entity.park.EntranceEntity;
import com.dragon.modules.yuegou.mybatis.Condition;
import com.dragon.modules.yuegou.mybatis.Query;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonUnwrapped;

import java.time.LocalDateTime;
/**
 * 停车入场信息表 动态查询条件
 * 
 * @author pbuilder generated
 * @date 2021-01-08 15:06:10
 * @version 2.0
 */
@JsonInclude(Include.NON_NULL)
public class EntranceQuery extends EntranceEntity implements Query<EntranceEntity> {

    /** 第三方停车ID或者停车订单号查询条件 */
	@JsonUnwrapped(prefix = "thirdId")
	private Condition<String> thirdIdCondition;

    /** 商圈ID查询条件 */
	@JsonUnwrapped(prefix = "busdId")
	private Condition<String> busdIdCondition;

    /** 车牌号查询条件 */
	@JsonUnwrapped(prefix = "plateNumber")
	private Condition<String> plateNumberCondition;

    /** 车牌颜色（第三方停车系统定义，不同停车系统的定义不一样）查询条件 */
	@JsonUnwrapped(prefix = "plateColor")
	private Condition<String> plateColorCondition;

    /** 停车场名称查询条件 */
	@JsonUnwrapped(prefix = "parkingName")
	private Condition<String> parkingNameCondition;

    /** 停车场ID查询条件 */
	@JsonUnwrapped(prefix = "parkingId")
	private Condition<String> parkingIdCondition;

    /** 入场时间查询条件 */
	@JsonUnwrapped(prefix = "entranceTime")
	private Condition<LocalDateTime> entranceTimeCondition;

    /** 用户类型 76:长租用户；77：临停用户查询条件 */
	@JsonUnwrapped(prefix = "userType")
	private Condition<String> userTypeCondition;

    /** 车辆入场信息推送时间查询条件 */
	@JsonUnwrapped(prefix = "pushTime")
	private Condition<LocalDateTime> pushTimeCondition;

    /** 长租车位ID查询条件 */
	@JsonUnwrapped(prefix = "fixParkingId")
	private Condition<String> fixParkingIdCondition;

    /** 长租剩余天数 如果是临停用户此字段为空查询条件 */
	@JsonUnwrapped(prefix = "remainingDays")
	private Condition<String> remainingDaysCondition;

    /** 创建时间查询条件 */
	@JsonUnwrapped(prefix = "createdTime")
	private Condition<LocalDateTime> createdTimeCondition;

	/**
	 * 构造一个查询条件对象
	 */
	public EntranceQuery() {
		super();
	}

	/**
	 * 依据实体对象构造一个查询条件对象
	 * 
	 * @param entity 实体对象
	 */
	public EntranceQuery(EntranceEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它查询条件对象的信息构造一个查询条件对象
	 * 
	 * @param other 查询条件对象
	 */
	public EntranceQuery(EntranceQuery other) {
		super(other);
		if(other.thirdIdCondition != null) {
			this.thirdIdCondition = other.thirdIdCondition.copy();
		}
		if(other.busdIdCondition != null) {
			this.busdIdCondition = other.busdIdCondition.copy();
		}
		if(other.plateNumberCondition != null) {
			this.plateNumberCondition = other.plateNumberCondition.copy();
		}
		if(other.plateColorCondition != null) {
			this.plateColorCondition = other.plateColorCondition.copy();
		}
		if(other.parkingNameCondition != null) {
			this.parkingNameCondition = other.parkingNameCondition.copy();
		}
		if(other.parkingIdCondition != null) {
			this.parkingIdCondition = other.parkingIdCondition.copy();
		}
		if(other.entranceTimeCondition != null) {
			this.entranceTimeCondition = other.entranceTimeCondition.copy();
		}
		if(other.userTypeCondition != null) {
			this.userTypeCondition = other.userTypeCondition.copy();
		}
		if(other.pushTimeCondition != null) {
			this.pushTimeCondition = other.pushTimeCondition.copy();
		}
		if(other.fixParkingIdCondition != null) {
			this.fixParkingIdCondition = other.fixParkingIdCondition.copy();
		}
		if(other.remainingDaysCondition != null) {
			this.remainingDaysCondition = other.remainingDaysCondition.copy();
		}
		if(other.createdTimeCondition != null) {
			this.createdTimeCondition = other.createdTimeCondition.copy();
		}
	}

	@Override
	public QueryWrapper<EntranceEntity> toQueryWrapper() {
		QueryWrapper<EntranceEntity> wrapper = new QueryWrapper<>(this);
		if (thirdIdCondition != null) {
			thirdIdCondition.toWrapper(wrapper, COL_THIRD_ID);
		}
		if (busdIdCondition != null) {
			busdIdCondition.toWrapper(wrapper, COL_BUSD_ID);
		}
		if (plateNumberCondition != null) {
			plateNumberCondition.toWrapper(wrapper, COL_PLATE_NUMBER);
		}
		if (plateColorCondition != null) {
			plateColorCondition.toWrapper(wrapper, COL_PLATE_COLOR);
		}
		if (parkingNameCondition != null) {
			parkingNameCondition.toWrapper(wrapper, COL_PARKING_NAME);
		}
		if (parkingIdCondition != null) {
			parkingIdCondition.toWrapper(wrapper, COL_PARKING_ID);
		}
		if (entranceTimeCondition != null) {
			entranceTimeCondition.toWrapper(wrapper, COL_ENTRANCE_TIME);
		}
		if (userTypeCondition != null) {
			userTypeCondition.toWrapper(wrapper, COL_USER_TYPE);
		}
		if (pushTimeCondition != null) {
			pushTimeCondition.toWrapper(wrapper, COL_PUSH_TIME);
		}
		if (fixParkingIdCondition != null) {
			fixParkingIdCondition.toWrapper(wrapper, COL_FIX_PARKING_ID);
		}
		if (remainingDaysCondition != null) {
			remainingDaysCondition.toWrapper(wrapper, COL_REMAINING_DAYS);
		}
		if (createdTimeCondition != null) {
			createdTimeCondition.toWrapper(wrapper, COL_CREATED_TIME);
		}
		return wrapper;
	}
	
	/**
	 * 构造并返回第三方停车ID或者停车订单号查询条件
	 * 
	 * @return thirdIdCondition 第三方停车ID或者停车订单号查询条件
	 */
	public Condition<String> thirdId() {
		this.thirdIdCondition = new Condition<>();
		return this.thirdIdCondition;
	}
	
	/**
	 * 获取第三方停车ID或者停车订单号查询条件
	 * 
	 * @return thirdIdCondition 第三方停车ID或者停车订单号查询条件
	 */
	public Condition<String> getThirdIdCondition() {
		return thirdIdCondition;
	}

	/**
	 * 设置第三方停车ID或者停车订单号查询条件
	 * 
	 * @param thirdIdCondition 第三方停车ID或者停车订单号查询条件
	 */
	public void setThirdIdCondition(Condition<String> thirdIdCondition) {
		this.thirdIdCondition = thirdIdCondition;
	}

	/**
	 * 构造并返回商圈ID查询条件
	 * 
	 * @return busdIdCondition 商圈ID查询条件
	 */
	public Condition<String> busdId() {
		this.busdIdCondition = new Condition<>();
		return this.busdIdCondition;
	}
	
	/**
	 * 获取商圈ID查询条件
	 * 
	 * @return busdIdCondition 商圈ID查询条件
	 */
	public Condition<String> getBusdIdCondition() {
		return busdIdCondition;
	}

	/**
	 * 设置商圈ID查询条件
	 * 
	 * @param busdIdCondition 商圈ID查询条件
	 */
	public void setBusdIdCondition(Condition<String> busdIdCondition) {
		this.busdIdCondition = busdIdCondition;
	}

	/**
	 * 构造并返回车牌号查询条件
	 * 
	 * @return plateNumberCondition 车牌号查询条件
	 */
	public Condition<String> plateNumber() {
		this.plateNumberCondition = new Condition<>();
		return this.plateNumberCondition;
	}
	
	/**
	 * 获取车牌号查询条件
	 * 
	 * @return plateNumberCondition 车牌号查询条件
	 */
	public Condition<String> getPlateNumberCondition() {
		return plateNumberCondition;
	}

	/**
	 * 设置车牌号查询条件
	 * 
	 * @param plateNumberCondition 车牌号查询条件
	 */
	public void setPlateNumberCondition(Condition<String> plateNumberCondition) {
		this.plateNumberCondition = plateNumberCondition;
	}

	/**
	 * 构造并返回车牌颜色（第三方停车系统定义，不同停车系统的定义不一样）查询条件
	 * 
	 * @return plateColorCondition 车牌颜色（第三方停车系统定义，不同停车系统的定义不一样）查询条件
	 */
	public Condition<String> plateColor() {
		this.plateColorCondition = new Condition<>();
		return this.plateColorCondition;
	}
	
	/**
	 * 获取车牌颜色（第三方停车系统定义，不同停车系统的定义不一样）查询条件
	 * 
	 * @return plateColorCondition 车牌颜色（第三方停车系统定义，不同停车系统的定义不一样）查询条件
	 */
	public Condition<String> getPlateColorCondition() {
		return plateColorCondition;
	}

	/**
	 * 设置车牌颜色（第三方停车系统定义，不同停车系统的定义不一样）查询条件
	 * 
	 * @param plateColorCondition 车牌颜色（第三方停车系统定义，不同停车系统的定义不一样）查询条件
	 */
	public void setPlateColorCondition(Condition<String> plateColorCondition) {
		this.plateColorCondition = plateColorCondition;
	}

	/**
	 * 构造并返回停车场名称查询条件
	 * 
	 * @return parkingNameCondition 停车场名称查询条件
	 */
	public Condition<String> parkingName() {
		this.parkingNameCondition = new Condition<>();
		return this.parkingNameCondition;
	}
	
	/**
	 * 获取停车场名称查询条件
	 * 
	 * @return parkingNameCondition 停车场名称查询条件
	 */
	public Condition<String> getParkingNameCondition() {
		return parkingNameCondition;
	}

	/**
	 * 设置停车场名称查询条件
	 * 
	 * @param parkingNameCondition 停车场名称查询条件
	 */
	public void setParkingNameCondition(Condition<String> parkingNameCondition) {
		this.parkingNameCondition = parkingNameCondition;
	}

	/**
	 * 构造并返回停车场ID查询条件
	 * 
	 * @return parkingIdCondition 停车场ID查询条件
	 */
	public Condition<String> parkingId() {
		this.parkingIdCondition = new Condition<>();
		return this.parkingIdCondition;
	}
	
	/**
	 * 获取停车场ID查询条件
	 * 
	 * @return parkingIdCondition 停车场ID查询条件
	 */
	public Condition<String> getParkingIdCondition() {
		return parkingIdCondition;
	}

	/**
	 * 设置停车场ID查询条件
	 * 
	 * @param parkingIdCondition 停车场ID查询条件
	 */
	public void setParkingIdCondition(Condition<String> parkingIdCondition) {
		this.parkingIdCondition = parkingIdCondition;
	}

	/**
	 * 构造并返回入场时间查询条件
	 * 
	 * @return entranceTimeCondition 入场时间查询条件
	 */
	public Condition<LocalDateTime> entranceTime() {
		this.entranceTimeCondition = new Condition<>();
		return this.entranceTimeCondition;
	}
	
	/**
	 * 获取入场时间查询条件
	 * 
	 * @return entranceTimeCondition 入场时间查询条件
	 */
	public Condition<LocalDateTime> getEntranceTimeCondition() {
		return entranceTimeCondition;
	}

	/**
	 * 设置入场时间查询条件
	 * 
	 * @param entranceTimeCondition 入场时间查询条件
	 */
	public void setEntranceTimeCondition(Condition<LocalDateTime> entranceTimeCondition) {
		this.entranceTimeCondition = entranceTimeCondition;
	}

	/**
	 * 构造并返回用户类型 76:长租用户；77：临停用户查询条件
	 * 
	 * @return userTypeCondition 用户类型 76:长租用户；77：临停用户查询条件
	 */
	public Condition<String> userType() {
		this.userTypeCondition = new Condition<>();
		return this.userTypeCondition;
	}
	
	/**
	 * 获取用户类型 76:长租用户；77：临停用户查询条件
	 * 
	 * @return userTypeCondition 用户类型 76:长租用户；77：临停用户查询条件
	 */
	public Condition<String> getUserTypeCondition() {
		return userTypeCondition;
	}

	/**
	 * 设置用户类型 76:长租用户；77：临停用户查询条件
	 * 
	 * @param userTypeCondition 用户类型 76:长租用户；77：临停用户查询条件
	 */
	public void setUserTypeCondition(Condition<String> userTypeCondition) {
		this.userTypeCondition = userTypeCondition;
	}

	/**
	 * 构造并返回车辆入场信息推送时间查询条件
	 * 
	 * @return pushTimeCondition 车辆入场信息推送时间查询条件
	 */
	public Condition<LocalDateTime> pushTime() {
		this.pushTimeCondition = new Condition<>();
		return this.pushTimeCondition;
	}
	
	/**
	 * 获取车辆入场信息推送时间查询条件
	 * 
	 * @return pushTimeCondition 车辆入场信息推送时间查询条件
	 */
	public Condition<LocalDateTime> getPushTimeCondition() {
		return pushTimeCondition;
	}

	/**
	 * 设置车辆入场信息推送时间查询条件
	 * 
	 * @param pushTimeCondition 车辆入场信息推送时间查询条件
	 */
	public void setPushTimeCondition(Condition<LocalDateTime> pushTimeCondition) {
		this.pushTimeCondition = pushTimeCondition;
	}

	/**
	 * 构造并返回长租车位ID查询条件
	 * 
	 * @return fixParkingIdCondition 长租车位ID查询条件
	 */
	public Condition<String> fixParkingId() {
		this.fixParkingIdCondition = new Condition<>();
		return this.fixParkingIdCondition;
	}
	
	/**
	 * 获取长租车位ID查询条件
	 * 
	 * @return fixParkingIdCondition 长租车位ID查询条件
	 */
	public Condition<String> getFixParkingIdCondition() {
		return fixParkingIdCondition;
	}

	/**
	 * 设置长租车位ID查询条件
	 * 
	 * @param fixParkingIdCondition 长租车位ID查询条件
	 */
	public void setFixParkingIdCondition(Condition<String> fixParkingIdCondition) {
		this.fixParkingIdCondition = fixParkingIdCondition;
	}

	/**
	 * 构造并返回长租剩余天数 如果是临停用户此字段为空查询条件
	 * 
	 * @return remainingDaysCondition 长租剩余天数 如果是临停用户此字段为空查询条件
	 */
	public Condition<String> remainingDays() {
		this.remainingDaysCondition = new Condition<>();
		return this.remainingDaysCondition;
	}
	
	/**
	 * 获取长租剩余天数 如果是临停用户此字段为空查询条件
	 * 
	 * @return remainingDaysCondition 长租剩余天数 如果是临停用户此字段为空查询条件
	 */
	public Condition<String> getRemainingDaysCondition() {
		return remainingDaysCondition;
	}

	/**
	 * 设置长租剩余天数 如果是临停用户此字段为空查询条件
	 * 
	 * @param remainingDaysCondition 长租剩余天数 如果是临停用户此字段为空查询条件
	 */
	public void setRemainingDaysCondition(Condition<String> remainingDaysCondition) {
		this.remainingDaysCondition = remainingDaysCondition;
	}

	/**
	 * 构造并返回创建时间查询条件
	 * 
	 * @return createdTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> createdTime() {
		this.createdTimeCondition = new Condition<>();
		return this.createdTimeCondition;
	}
	
	/**
	 * 获取创建时间查询条件
	 * 
	 * @return createdTimeCondition 创建时间查询条件
	 */
	public Condition<LocalDateTime> getCreatedTimeCondition() {
		return createdTimeCondition;
	}

	/**
	 * 设置创建时间查询条件
	 * 
	 * @param createdTimeCondition 创建时间查询条件
	 */
	public void setCreatedTimeCondition(Condition<LocalDateTime> createdTimeCondition) {
		this.createdTimeCondition = createdTimeCondition;
	}

}
